home *** CD-ROM | disk | FTP | other *** search
/ An Invitation to the Roland World of Music / Roland - An Invitation To The Roland World Of Music.bin / vb / mmsystem / vb_libs / midi_cmd.bas next >
BASIC Source File  |  1995-04-23  |  2KB  |  69 lines

  1. Option Explicit
  2.  
  3. Sub all_sounds_off ()
  4. Dim channel As Integer
  5.  
  6.     For channel = 0 To 15
  7.         Call midi_outshort(&HB0 + channel, &H78, 0)
  8.         Call midi_outshort(&HB0 + channel, &H7B, 0)
  9.     Next
  10. End Sub
  11.  
  12. Sub Nibblize (ByVal value As Long, msb As Integer, lsb As Integer)
  13.     lsb = value And &H7F ' screen off first seven bits
  14.     value = value And &H7F80 ' take the rest
  15.     msb = value / 128 ' - and shift 7 bits down
  16. End Sub
  17.  
  18. Sub all_notes_off (ch As Integer)
  19.     Call midi_outshort(&HB0 + ch, &H78, 0)
  20. End Sub
  21.  
  22.  
  23.  
  24. Sub bender (ByVal ch As Integer, ByVal value As Long)
  25. Dim msb As Integer ' most significant byte
  26. Dim lsb As Integer ' least significant byte
  27.  
  28.     Call Nibblize(value, msb, lsb)
  29.  
  30.     Call midi_outshort(&HE0 + ch, lsb, msb)
  31. End Sub
  32.  
  33. Sub control_change (ch As Integer, ccnr As Integer, ByVal v As Integer)
  34.     Call midi_outshort(&HB0 + ch, ccnr, v)
  35. End Sub
  36.  
  37. Sub midisetrpn (ch As Integer, pmsb As Integer, plsb As Integer, msb As Integer, lsb As Integer)
  38.     Call midi_outshort(ch, &H65, pmsb)
  39.     Call midi_outshort(ch, &H64, plsb)
  40.     Call midi_outshort(ch, &H6, msb)
  41.     Call midi_outshort(ch, &H26, lsb)
  42. End Sub
  43.  
  44. Sub note_off (ch As Integer, ByVal kk As Integer)
  45.     Call midi_outshort(&H90 + ch, kk, 0)
  46. End Sub
  47.  
  48. Sub note_on (ch As Integer, ByVal kk As Integer, v As Integer)
  49.     Call midi_outshort(&H90 + ch, kk, v)
  50. End Sub
  51.  
  52. Sub pitch_bend (ch As Integer, l As Integer, m As Integer)
  53.     Call midi_outshort(&HE0 + ch, l, m)
  54. End Sub
  55.  
  56. Sub program_change (ch As Integer, cc0nr As Integer, ByVal pnr As Integer)
  57.     Call control_change(ch, 0, cc0nr)
  58.     Call midi_outshort(&HC0 + ch, pnr, 0)
  59. End Sub
  60.  
  61. Sub reset_controllers ()
  62. Dim i As Integer
  63.  
  64.     For i = 0 To 15
  65.         Call midi_outshort(&HB0 + i, &H79, 0)
  66.     Next
  67. End Sub
  68.  
  69.